Recently, SaaS (Software as a Service)/ASP (Application Service Provider) type services for providing various services on the same platform to a plurality of users have gained attention. As a representative of such type of services, for example, Salesforce.com or the like exists.
Since such SaaS/ASP type services are on the assumption that contracted users use pre-prepared services, it is not sufficient to provide only the functions of default services, but customization for each user is required (this is called a customization requirement).
For such a customization requirement for each user, an existing ASP service provider has constructed a user-dedicated customized service providing apparatus on server hardware or a virtual OS (Operating System) that is individually prepared for each user. For example, a solution for constructing a user-dedicated customized service providing apparatus using a virtual technique, for example, of VMWare (http://www.vmware.com/jp/), Xen (http://www.xen.org/), or the like, has been provided. In this case, middleware, OS, or server hardware, which is a lower layer of this service, is deployed in large amount for each user.
In addition, as a method for providing a customized service for each user, there is a method for deploying a customized service for each user on an application server by using the application server that uses Java (registered trademark) technology or the like. A simplified configuration diagram for this method is illustrated in FIG. 13.
A service providing apparatus 1 illustrated in FIG. 13 is provided with a request reception responding unit 5, a default service loader 10, and service loaders 11 to 1N for users.
In the default service loader 10, a default service class group 20 for providing services to unspecified users is deployed. On the other hand, in the service loaders 11 to 1N for users, customized service class groups 21 to 2N that reflect the customization requirements for the users are deployed. Now, how the classes are deployed in the respective service loaders 11 to 1N will be described using FIG. 14.
In FIG. 14, the default service class group 20 loaded in the default service loader 10 has a default service composite 2000. This default service composite 2000 has components 2001, 2002, 2003, and 2004.
In the customized service class group 21 that is loaded in the service loader 11, the same class as the default service composite 2000 is deployed, but in this class, a customized component 2011 is deployed instead of the component 2002. By deploying this component 2011, the customization requirement is satisfied.
In the same manner, in the customized service class group 22 that is loaded in the service loader 12, a customized component 2021 is deployed instead of the component 2004. By deploying this component 2021, the customization requirement is satisfied.
As illustrated in FIG. 14, in this method, the components 2001 and 2003 that can be shared are multiply deployed in the service loader.
As described above, with respect to the method of deploying the same service for each user, it may be considered that only one service is deployed and a logic that implements the customization requirement is incorporated into the service. In this case, however, whenever the customization requirement occurs, it is necessary to correct the service logic so that the customization requirement branches off to an added customization requirement and to perform recompile or redeployment of the service. Further, in this case, it is necessary to temporarily stop the entire service.
In order to solve the stop of the entire, service according to the change of the service as described above, an example of a system that changes a part of highly modularized software and redeploys the service without stopping the entire software is disclosed in Patent Document 1.
Further, as the same system as Patent Document 1, an example of a system that can add a plug-in module without performing the recompile or restart is disclosed in Patent Document 2.